<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // script start
        // async1 start
        // async2
        // promise1
        // script end  ==> 所有的同步代码执行完了 ， 清空微任务队列
        // async1 end  666
        // promise2    ==> 当前事件循环结束 Tick结束 
        // setTimeout
            async function async1() {
                // 这里的代码是同步的 
                console.log('async1 start') 
                await async2() // 这里要执行，同步，不等待
                // 相当于放到了.then() 异步   微任务
                console.log('async1 end')  // w1 
                console.log(666)
            }
            async function async2() {
                console.log('async2') 
            }

            console.log('script start')  

            setTimeout(function() {
                console.log('setTimeout') // 宏1 
            }, 0)

            async1();

            new Promise(function(resolve) {
                console.log('promise1')
                resolve();
            }).then(function() {   // 微2 
                console.log('promise2')  
            });
            
            console.log('script end')


    </script>
</body>
</html>